module unde.games.dizzy.omega.animations.light_drop;

import derelict.opengl3.gl;
import std.math;
import unde.games.object;
import unde.games.renderer;
import unde.global_state;

class LightDrop:StaticGameObject
{    
    this(MainGameObject root)
    {
        models["light-drop"] = root.models["light-drop"];
        super(root);
    }

    override void draw(GlobalState gs)
    {
        if (abs(root.scrx-0.0) > 16.0 ||
            abs(root.scry-0.0) > 9.0) return;
            
        float f = root.frame%500;   

        glPushMatrix();
        if (f <= 0.0) {}
        else if (f <= 300.0)
        {
            glTranslatef(12.3, -1.8 - (2.2-1.8)*f/300.0, 1.0);
            recursive_render(gs, models["light-drop"]);
        }
        else if (f <= 400.0)
        {
            glTranslatef(12.3, -2.2 - (5.0-2.2)*(f-300.0)/100.0, 1.0);
            recursive_render(gs, models["light-drop"]);
        }
        else {}
        glPopMatrix();
    }
    
    override bool tick(GlobalState gs)
    {
        return true;
    }
}